package com.zhonghui.scm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 供应链SCM-采购管理-采购申请对象 scm_purchase_apply
 *
 * @author zhonghui
 * @date 2022-05-26
 */
@ApiModel("采购管理-采购申请对象")
public class ScmPurchaseApply extends BaseEntity {

    /** id */
    @Excel(name = "编号")
    @ApiModelProperty("编号")
    private Long id;

    /** 申请单号 */
    @Excel(name = "申请单号")
    @ApiModelProperty("申请单号")
    private String applicationNo;

    /** 申请类型 */
    @Excel(name = "申请类型")
    @ApiModelProperty("申请类型")
    private Integer applicationType;

    /** 计划Id */
    @ApiModelProperty("计划Id")
    private Long purchasingPlanId;

    /** 计划号 */
    @Excel(name = "计划号")
    @ApiModelProperty("计划号")
    private String planNo;

    /** 补货单号Id */
    @ApiModelProperty("补货单号Id")
    private Long replenishmentId;

    /** 补货单号 */
    @Excel(name = "补货单号")
    @ApiModelProperty("补货单号")
    private String replenishmentNo;

    /** 申请人Id */
    @ApiModelProperty("申请人Id")
    private Long applicantId;

    /** 申请人 */
    @Excel(name = "申请人")
    @ApiModelProperty("申请人")
    private String applicantName;

    /** 申请时间 */
    @Excel(name = "申请时间")
    @ApiModelProperty("申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applicantDate;

    /** 申请状态 */
    @Excel(name = "申请状态")
    @ApiModelProperty("申请状态")
    private Integer applicantStatus;

    /** 审核人Id */
    @ApiModelProperty("审核人Id")
    private Long approvedId;

    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty("审核人")
    private String approvedName;

    /** 审核时间 */
    @Excel(name = "审核时间")
    @ApiModelProperty("审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date approvedDate;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty("审核状态")
    private Integer approvedStatus;

    /** 审核意见 */
    @ApiModelProperty("审核意见")
    private String approvedComments;

    /** 采购审核明细信息 */
    @ApiModelProperty("采购审核明细信息")
    private List<ScmPurchaseApplyItem> scmPurchaseApplyItemList = new ArrayList<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getApplicationNo() {
        return applicationNo;
    }

    public void setApplicationNo(String applicationNo) {
        this.applicationNo = applicationNo;
    }

    public Integer getApplicationType() {
        return applicationType;
    }

    public void setApplicationType(Integer applicationType) {
        this.applicationType = applicationType;
    }

    public Long getPurchasingPlanId() {
        return purchasingPlanId;
    }

    public void setPurchasingPlanId(Long purchasingPlanId) {
        this.purchasingPlanId = purchasingPlanId;
    }

    public String getPlanNo() {
        return planNo;
    }

    public void setPlanNo(String planNo) {
        this.planNo = planNo;
    }

    public Long getReplenishmentId() {
        return replenishmentId;
    }

    public void setReplenishmentId(Long replenishmentId) {
        this.replenishmentId = replenishmentId;
    }

    public Long getApplicantId() {
        return applicantId;
    }

    public void setApplicantId(Long applicantId) {
        this.applicantId = applicantId;
    }

    public Date getApplicantDate() {
        return applicantDate;
    }

    public void setApplicantDate(Date applicantDate) {
        this.applicantDate = applicantDate;
    }

    public Integer getApplicantStatus() {
        return applicantStatus;
    }

    public void setApplicantStatus(Integer applicantStatus) {
        this.applicantStatus = applicantStatus;
    }

    public Long getApprovedId() {
        return approvedId;
    }

    public void setApprovedId(Long approvedId) {
        this.approvedId = approvedId;
    }

    public Date getApprovedDate() {
        return approvedDate;
    }

    public void setApprovedDate(Date approvedDate) {
        this.approvedDate = approvedDate;
    }

    public Integer getApprovedStatus() {
        return approvedStatus;
    }

    public void setApprovedStatus(Integer approvedStatus) {
        this.approvedStatus = approvedStatus;
    }

    public String getApprovedComments() {
        return approvedComments;
    }

    public void setApprovedComments(String approvedComments) {
        this.approvedComments = approvedComments;
    }

    public List<ScmPurchaseApplyItem> getScmPurchaseApplyItemList() {
        return scmPurchaseApplyItemList;
    }

    public void setScmPurchaseApplyItemList(List<ScmPurchaseApplyItem> scmPurchaseApplyItemList) {
        this.scmPurchaseApplyItemList = scmPurchaseApplyItemList;
    }

    public String getReplenishmentNo() {
        return replenishmentNo;
    }

    public void setReplenishmentNo(String replenishmentNo) {
        this.replenishmentNo = replenishmentNo;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public String getApprovedName() {
        return approvedName;
    }

    public void setApprovedName(String approvedName) {
        this.approvedName = approvedName;
    }

    @Override
    public String toString() {
        return "ScmPurchaseApply{" +
                "id=" + id +
                ", applicationNo='" + applicationNo + '\'' +
                ", applicationType=" + applicationType +
                ", purchasingPlanId=" + purchasingPlanId +
                ", planNo='" + planNo + '\'' +
                ", replenishmentId=" + replenishmentId +
                ", applicantId=" + applicantId +
                ", applicantDate=" + applicantDate +
                ", applicantStatus=" + applicantStatus +
                ", approvedId=" + approvedId +
                ", approvedDate=" + approvedDate +
                ", approvedStatus=" + approvedStatus +
                ", approvedComments='" + approvedComments + '\'' +
                '}';
    }
}
